home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib06.dsk / D.A.R.T. SYSTEM.bas < prev    next >
BASIC Source File  |  2023-02-26  |  14KB  |  196 lines

  1. 1  REM  *************************
  2. 2  REM  *  THE D.A.R.T. SYSTEM  *
  3. 3  REM  * DEBT/ASSET REPORTING  *
  4. 4  REM  *  & TRENDING SYSTEM    *
  5. 5  REM  *   BY RICK CONNOLLY    *
  6. 6  REM  *  COPYRIGHT (C) 1981   *
  7. 7  REM  *  BY MICRO-SPARC INC.  *
  8. 8  REM  *  LINCOLN, MASS 01773  *
  9. 9  REM  *************************
  10. 10 D$ =  CHR$(4): SPEED= 255: NORMAL : TEXT : HOME : GOTO 5000
  11. 20 X = T *30:Y = X +29: REM  SET X & Y FOR ONLY ONE ACCOUNT
  12. 30  PRINT : FLASH : HTAB 17: PRINT "WORKING": FOR I = X TO Y  STEP 30: IF   NOT A(I)  THEN  NEXT 
  13. 40 L = 1 -2 *(Z = 8  AND I <421): REM  DETERMINE IF DEBTS ARE ADDED OR SUBTRACTED
  14. 50  FOR J = 11 TO 22:A = A(I +J)
  15. 60  IF J -10 = A(903)  AND A(I +23) < >A(903)  THEN A = A(I +26): REM  SET CURRENT MONTH TO MOST RECENT VALUE IF REQ'D
  16. 70 A(907 +J) = A: NEXT : REM  MOVE MONTH'S VALUE INTO FIRST WORKING SPACE
  17. 80  FOR K = 1 TO 12:A(929 +K) = A(917 +A(905 +K)): NEXT : REM  RESEQUENCE SO CURRENT MONTH IS LAST IN ORDER
  18. 90  FOR J = 954 TO 965:A(J) = A(J) +A(J -24) *L: NEXT 
  19. 100 N = 0:S2X = 0:SY = 0:S3 = 0:SX = 0:J = 0: FOR K = 1 TO 12:T = A(929 +K): IF T = 0  AND J = 0  THEN 120: REM  BEGIN LINEAR REGRESSION. IF ZERO VALUE, DON'T START YET
  20. 110 J = 1:N = N +1:SX = SX +K:S2X = S2X +K *K:SY = SY +T:S3 = S3 +K *T
  21. 120  NEXT :A = N: IF N = 1  THEN AV = SY: FOR K = 942 TO 953:A(K) = SY: NEXT : GOTO 170: REM  IF ONLY ONE ENTRY, PROJECTION EQUALS THAT ENTRY
  22. 130  IF SY = 0  THEN AV = 0: GOTO 170: REM  ALL ZEROS IN ENTRY
  23. 140 J = (N *S3 -SX *SY)/(N *S2X -SX *SX):AV = SY/N:SB = AV -((SX/N) *J)
  24. 150  FOR K = 13 TO 24:A(929 +K) = K *J +SB: IF   NOT ZC  AND A(929 +K) <0  THEN A(929 +K) = 0: REM  PROHIBIT NEGATIVE VALUES UNLESS SO OPTIONED
  25. 160 N = N +1: NEXT 
  26. 170  FOR K = 966 TO 977:A(K) = A(K) +A(K -24) *L: NEXT : NEXT : REM  SUM THE PROGRESSIONS
  27. 180 HT = 20 - INT(( LEN(B$) + LEN(NA$) +1)/2): NORMAL : HOME 
  28. 190  VTAB 2: HTAB HT: PRINT B$" "NA$: VTAB 4: INVERSE : HTAB 5: PRINT "STORED DATA";: HTAB 23: PRINT "PROJECTED VALUES": NORMAL 
  29. 200  PRINT :M = A(906):YR = A(905) -1901: IF M = 1  THEN YR = YR +1
  30. 210  FOR I = 1 TO 12: PRINT M$(M)" "YR" $";:NR = A(953 +I): GOSUB 310: PRINT C$;
  31. 220  PRINT "   "M$(M)" "YR +1" $";:NR = A(953 +I +12): GOSUB 310: PRINT C$
  32. 230 M = M +1: IF M = 13  THEN M = 1:YR = YR +1
  33. 240  NEXT 
  34. 250  IF TT  THEN AV = 0: FOR I = 954 TO 965:AV = AV +A(I): NEXT :AV = AV/12:A = 12
  35. 260  PRINT : PRINT "THE PAST "A" MONTH AVERAGE BALANCE OF": PRINT B$" "NA$": $";:NR = AV: GOSUB 310: PRINT C$
  36. 270 NR = A(970) -A(969): PRINT "IT ";: IF NR <0  THEN  PRINT "DECREASED ";:NR = NR * -1: GOTO 290
  37. 280  PRINT "INCREASED ";
  38. 290  PRINT "$";: GOSUB 310: PRINT C$" A MONTH."
  39. 300  GOSUB 9000: RETURN 
  40. 310 C$ = "         " + STR$( INT(NR *100 +.5)/100): IF  MID$ (C$, LEN(C$) -2,1) = "."  THEN 340
  41. 320  IF  MID$ (C$, LEN(C$) -1,1) = "."  THEN C$ = C$ +"0": GOTO 340
  42. 330 C$ = C$ +".00"
  43. 340  IF  ABS( VAL(C$)) >999.99  THEN C$ =  LEFT$(C$, LEN(C$) -6) +"," + RIGHT$(C$,6)
  44. 350 C$ =  RIGHT$(C$,10): RETURN 
  45. 1000  HOME : VTAB 1: GOSUB 9010: VTAB 3
  46. 1010 TD = 0:TA = 0: INVERSE : HTAB 17: PRINT "ASSETS": NORMAL : PRINT 
  47. 1020  PRINT "ASSET","MOST RECENT VALUE": PRINT 
  48. 1030  FOR I = 450 TO 720  STEP 30: IF   NOT (A(I))  THEN 1050
  49. 1040  PRINT N$(I/30),"$";:NR = A(I +26): GOSUB 310: PRINT C$:TA = TA +A(I +26)
  50. 1050  NEXT : PRINT : PRINT "TOTAL CURRENT ASSETS ARE $";:NR = TA: GOSUB 310: PRINT C$: PRINT : GOSUB 9000: HOME 
  51. 1060  INVERSE : VTAB 2: HTAB 17: PRINT "DEBTS": NORMAL : PRINT : PRINT "OWED TO","MOST RECENT AMOUNT": PRINT 
  52. 1070  FOR I = 0 TO 420  STEP 30: IF   NOT (A(I))  THEN 1090
  53. 1080  PRINT N$(I/30),"$";:NR = A(I +26): GOSUB 310: PRINT C$:TD = TD +A(I +26)
  54. 1090  NEXT : PRINT : PRINT "TOTAL CURRENT DEBTS ARE $";:NR = TD: GOSUB 310: PRINT C$: GOSUB 9000: HOME 
  55. 1100  VTAB 1: GOSUB 9010: VTAB 3: PRINT "THE FOLLOWING MISCELLANEOUS EXPENSES": PRINT "ARE BEING MONITORED:": PRINT : PRINT "NAME","MOST RECENT EXPENSE": PRINT 
  56. 1110  FOR I = 750 TO 870  STEP 30: IF   NOT (A(I))  THEN 1130
  57. 1120  PRINT N$(I/30),"$";:NR = A(I +26): GOSUB 310: PRINT C$
  58. 1130  NEXT : PRINT : PRINT : PRINT : PRINT "YOUR CURRENT FINANCIAL STATUS IS:"
  59. 1140  PRINT : PRINT "  ASSETS    $";:NR = TA: GOSUB 310: PRINT C$: PRINT "  DEBTS     $";:NR = TD: GOSUB 310: PRINT C$: PRINT  TAB( 13)"-----------"
  60. 1150  PRINT "  TOTAL     $";: IF TA -TD <0  THEN  INVERSE 
  61. 1160 NR = TA -TD: GOSUB 310: PRINT C$: NORMAL : GOSUB 9000: GOTO 7000
  62. 2000  HOME : VTAB 2: PRINT "YOU C<CTRL-A>AN ADD:": PRINT : GOSUB 9140: GOSUB 9020
  63. 2010  IF PT <5  AND B$ = "MISC. EXPENDITURE"  OR PT <10  AND B$ = "ASSET"  OR PT <15  AND B$ = "DEBT"  THEN 2030
  64. 2020  PRINT : PRINT  CHR$(7) CHR$(7)"ALL "B$" FIELDS USED.  YOU": PRINT "MUST DELETE ONE FOR A NEW ENTRY.": GOSUB 9000: GOTO 7000
  65. 2030  PRINT : PRINT : PRINT "WHAT IS THE NAME OF THE NEW": PRINT B$" ";: INPUT Z$:Z$ =  LEFT$(Z$,10): IF Z$ = ""  THEN 7000
  66. 2040 L =  LEN(Z$): FOR J = 1 TO L:A(T +J) =  ASC( MID$ (Z$,J,1)): NEXT :A(T) = L:N$(T/30) = Z$
  67. 2050 A(T +23) = A(903):A(T +24) = A(904):A(T +25) = A(905): HOME 
  68. 2060  PRINT : PRINT : PRINT "ENTER ONE YEAR'S DATA FOR "Z$: PRINT : PRINT "YEAR","MONTH","AMOUNT": PRINT 
  69. 2070 D = 0: FOR Z = 1 TO 12:I = T +10 +A(905 +Z): IF A(906) = 1  THEN YR = A(905): GOTO 2090
  70. 2080 YR = A(905) -1: IF D = 1  THEN YR = YR +1
  71. 2090 MO$ = M$(A(905 +Z)): IF MO$ = "DEC"  THEN D = 1
  72. 2100  PRINT YR," "MO$;: HTAB 30: INPUT A(I):A(T +26) = A(I): NEXT :UD = 1: GOTO 2000
  73. 3000  HOME : VTAB 2: PRINT "YOU CAN CORRECT OR UPDATE:": PRINT : GOSUB 9140
  74. 3010  PRINT "DO NOT UPDATE TO THE CURRENT MONTH": PRINT "BEFORE YOU HAVE UPDATED ALL PREVIOUS": PRINT "MONTHS REQUIRING UPDATE.  FAILURE TO": PRINT "DO SO WILL COAUSE ERRORS IN PROJECTIONS.": PRINT 
  75. 3020  GOSUB 9020
  76. 3030  PRINT : PRINT "ENTER THE NAME OF THE "B$".": INPUT NA$: PRINT : IF NA$ = ""  THEN 7000
  77. 3040  FOR I = X/30 TO Y/30:T = 30 *I: IF N$(I) = NA$  THEN  HOME : GOTO 3060
  78. 3050  NEXT : GOSUB 9130: GOSUB 9080: GOTO 3030
  79. 3060  PRINT : PRINT NA$" WAS LAST UPDATED "M$(A(T +23))" "A(T +24)", "A(T +25)"  ": PRINT : PRINT "YEAR","MONTH","AMOUNT"
  80. 3070  VTAB 5:D = 0: FOR K = 1 TO 12: CALL  -868: HTAB 1:NR = A(T +A(905 +K) +10): GOSUB 310: IF A(906) = 1  THEN YR = A(905): GOTO 3090
  81. 3080 YR = A(905) -1: IF D = 1  THEN YR = YR +1
  82. 3090 MO$ = M$(A(905 +K)): IF MO$ = "DEC"  THEN D = 1
  83. 3100  CALL  -868: PRINT YR,MO$"       $";
  84. 3110  IF A(T +23) = A(903)  THEN 3140
  85. 3120 TQ = A(903) -A(T +23): IF TQ <0  THEN TQ = TQ +12
  86. 3130  CALL  -868: IF 12 -K -TQ <0  THEN  INVERSE : PRINT "UPDATE REQD": NORMAL : GOTO 3150
  87. 3140  PRINT " "C$
  88. 3150  NEXT 
  89. 3160  PRINT : PRINT "ENTER MONTH, COMMA, AMOUNT.  EXAMPLE:": PRINT "MAR,1023.33   ENTER R TO RETURN TO": PRINT "UPDATE/CORRECT MENU.": PRINT 
  90. 3170  POKE 34,17
  91. 3180  CALL  -958: GET A$: PRINT A$;: IF A$ = "R"  THEN  POKE 34,0: GOSUB 9080: GOTO 3030
  92. 3190  IF A$ < >"A"  AND A$ < >"D"  AND A$ < >"F"  AND A$ < >"J"  AND A$ < >"M"  AND A$ < >"N"  AND A$ < >"O"  AND A$ < >"S"  THEN  HTAB 1: CALL  -868: GOTO 3180
  93. 3200  INPUT "";C$,Z$:C$ = A$ +C$:UD = 1
  94. 3210  FOR I = 1 TO 12: IF C$ = M$(I)  THEN M = I: GOTO 3230
  95. 3220 : NEXT :A$ = NA$:NA$ = C$: GOSUB 9130:NA$ = A$: GOTO 3160
  96. 3230  IF M < >A(903)  AND A(T +23) < >A(903)  THEN 3250
  97. 3240  HOME : HTAB 14: FLASH : PRINT "UPDATING FILES": NORMAL 
  98. 3250 A(T +10 +M) =  VAL(Z$): IF M = A(903)  THEN A(T +23) = A(903):A(T +24) = A(904):A(T +25) = A(905):A(T +26) =  VAL(Z$)
  99. 3260  IF M < >A(903)  AND A(T +23) < >A(903)  THEN 3180
  100. 3270  POKE 34,0: VTAB 1: GOTO 3060
  101. 4000  HOME : VTAB 2: PRINT "  YOU MAY SELECT ONE OF THE FOLLOWING:":NA$ = ""
  102. 4010  PRINT : PRINT "1.  REVIEW/PROJECT SUMMED ASSETS": PRINT "2.  REVIEW/PROJECT SUMMED DEBTS": PRINT "3.  REVIEW/PROJECT SUMMED MISCELLANE-": PRINT "    OUS EXPENDITURES"
  103. 4020  PRINT "4.  RETURN TO MENU.": PRINT "5.  REVIEW/PROJECT ANY ASSET": PRINT "6.  REVIEW/PROJECT ANY DEBT"
  104. 4030  PRINT "7.  REVIEW/PROJECT ANY MISCELLANEOUS": PRINT "    EXPENDITURE": PRINT "8.  REVIEW/PROJECT SUMMED FINANCIAL": PRINT "    POSITION (ASSETS - DEBTS)": PRINT 
  105. 4040  POKE 34,15
  106. 4050  PRINT "ENTER YOUR CHOICE ";: GET Z$: PRINT Z$:Z =  VAL(Z$): IF Z <1  OR Z >8  THEN  PRINT  CHR$(7): GOTO 4050
  107. 4060  IF Z = 4  THEN 7000
  108. 4070 ZC = 1: PRINT : PRINT "DO YOU WANT TO ALLOW NEGATIVE VALUES": PRINT "IN PROJECTIONS (Y/N) ";: GET C$: PRINT C$: IF C$ < >"Y"  THEN ZC = 0
  109. 4080  POKE 34,0: FOR I = 918 TO 977:A(I) = 0: NEXT : REM  CLEAR WORKING SPACE
  110. 4090 TT = 0: IF Z = 1  OR Z = 5  THEN X = 450:Y = 720: IF Z = 1  THEN TT = 1
  111. 4100  IF Z = 2  OR Z = 6  THEN X = 0:Y = 420: IF Z = 2  THEN TT = 1
  112. 4110  IF Z = 3  OR Z = 7  THEN X = 750:Y = 870: IF Z = 3  THEN TT = 1
  113. 4120  IF Z = 8  THEN B$ = "TOTAL FINANCIAL STATUS":X = 0:Y = 721:TT = 1: GOSUB 30: GOTO 4000
  114. 4130  IF TT = 0  THEN Z = Z -4: GOSUB 9040:Z = Z +4
  115. 4140  IF Z = 7  THEN B$ = "EXPENSE"
  116. 4150  IF Z = 1  THEN B$ = "SUMMED ASSETS"
  117. 4160  IF Z = 2  THEN B$ = "SUMMED DEBTS"
  118. 4170  IF Z = 3  THEN B$ = "SUMMED MISC. EXPENSES"
  119. 4180  IF TT = 1  THEN  GOSUB 30: GOTO 4000
  120. 4190  PRINT : PRINT "PLEASE ENTER THE NAME OF THE ONE YOU": PRINT "WANT LISTED AND PROJECTED ";: INPUT NA$: IF NA$ = ""  THEN 7000
  121. 4200  FOR I = X/30 TO Y/30: IF NA$ = N$(I)  AND NA$ < >""  THEN T = I: GOSUB 20: GOTO 4000
  122. 4210  NEXT : IF NA$ = ""  THEN 7000
  123. 4220  GOSUB 9130: GOTO 4120
  124. 5000  DIM A(977),N$(30),M$(12)
  125. 5010  FOR I = 1 TO 12: READ M$(I): NEXT 
  126. 5020  DATA  JAN,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NOV,DEC
  127. 5030  PRINT "     THE D.A.R.T. SYSTEM": PRINT "    DEBT/ASSET  REPORTING": PRINT "    &   TRENDING   SYSTEM": PRINT "      BY  RICK CONNOLLY  ": PRINT "      COPYRIGHT (C) 1981 ": PRINT "      BY MICROSPARC INC. "
  128. 5040  PRINT : PRINT : PRINT : PRINT "    DO YOU HAVE ANY DATA TO ENTER? ";: GET Z$: PRINT Z$:: PRINT : IF Z$ < >"Y"  THEN 5190
  129. 5050  PRINT "    FROM TAPE (T) OR FROM DISK (D)? ";: GET Z$: PRINT Z$
  130. 5060  IF Z$ = "D"  THEN 5110
  131. 5070  IF Z$ < >"T"  THEN 5050
  132. 5080  PRINT : PRINT : PRINT "1. START TAPE PLAYING  2. PRESS RETURN": PRINT 
  133. 5090  HTAB 13: INPUT "READY TO LOAD ";Z$: VTAB 17: CALL  -868
  134. 5100  FLASH : HTAB 16: PRINT "LOADING";: NORMAL : RECALL A: HTAB 16: PRINT "LOADED ": GOTO 5150
  135. 5110  PRINT : PRINT : PRINT "     DATA NOW BEING READ FROM DISK"
  136. 5120  PRINT D$"OPEN ASSET DATA": PRINT D$"READ ASSET DATA"
  137. 5130  PRINT : FOR I = 0 TO 903: INPUT A(I): NEXT 
  138. 5140  PRINT D$"CLOSE ASSET DATA"
  139. 5150  PRINT : PRINT "DATA WAS RECORDED ON "M$(A(900))" "A(901)", "A(902)"."
  140. 5160  FOR I = 0 TO 870  STEP 30:J = I/30: IF   NOT (A(I))  THEN 5180
  141. 5170  FOR N = I +1 TO I +A(I):N$(J) = N$(J) + CHR$(A(N)): NEXT : REM  DEVELOP ACCOUNT NAMES
  142. 5180  NEXT 
  143. 5190  PRINT : PRINT "ENTER TODAY'S DATE LIKE THIS: MMM,DD,YY EXAMPLE: DEC,4,81  ";
  144. 5200  INPUT NA$,A(904),A(905): IF A(905) <1000  THEN A(905) = A(905) +1900
  145. 5210  IF A(903) < >0  AND (A(905) <A(902)  OR A(905) -A(902) >1)  THEN  PRINT  CHR$(7);: GOTO 5190
  146. 5220  FOR I = 1 TO 12: IF NA$ = M$(I)  THEN A(903) = I: GOTO 5240: REM  CHECK FOR VALID MONTH
  147. 5230  NEXT : GOSUB 9130: GOTO 5190
  148. 5240 M = A(903) +1: FOR I = 906 TO 917: IF M = 13  THEN M = 1
  149. 5250 A(I) = M:M = M +1: NEXT : REM  SET UP MONTHS FILE
  150. 5260  GOSUB 6000: GOTO 7000
  151. 5500 A(900) = A(903):A(901) = A(904):A(902) = A(905): HOME : PRINT " SAVE DATA TO TAPE (T) OR TO DISK (D)? ";: GET Z$: PRINT Z$: PRINT : IF Z$ = "T"  THEN 5560
  152. 5510  IF Z$ < >"D"  THEN 7000
  153. 5520  PRINT : PRINT "DATA NOW BEING WRITTEN TO DISK"
  154. 5530  PRINT D$"OPEN ASSET DATA": PRINT D$"WRITE ASSET DATA"
  155. 5540  FOR I = 0 TO 903: PRINT A(I): NEXT 
  156. 5550  PRINT D$"CLOSE ASSET DATA": GOTO 7000
  157. 5560  VTAB 6: PRINT "1. START RECORDING  2. PRESS RETURN"
  158. 5570  VTAB 12: HTAB 13: INPUT "READY TO SAVE ";Z$: VTAB 12: CALL  -868: FLASH : HTAB 17: PRINT "SAVING": STORE A
  159. 5580  NORMAL : VTAB 12: HTAB 17: PRINT "SAVED ": GOSUB 9000: GOTO 7000
  160. 6000  HOME : PRINT "ACCOUNTS BELOW NOT UPDATED TO "M$(A(903))" "A(905)".": PRINT 
  161. 6010  HTAB 18: PRINT "DEBTS": PRINT :TQ = 1: FOR I = 0 TO 29
  162. 6020  IF I = 15  THEN  PRINT : PRINT :TQ = 1: HTAB 17: PRINT "ASSETS": PRINT 
  163. 6030  IF I = 25  THEN  PRINT : PRINT :TQ = 1: HTAB 9: PRINT "MISCELLANEOUS EXPENSES": PRINT 
  164. 6040  IF   NOT (A(30 *I))  THEN 6060
  165. 6050  IF A(30 *I +23) < >A(903)  THEN  HTAB TQ: PRINT N$(I);:TQ = TQ +14: IF TQ >30  THEN TQ = 1: PRINT 
  166. 6060  NEXT : PRINT : PRINT : GOSUB 9000: RETURN 
  167. 7000  POKE 34,0: HOME : PRINT  TAB( 7)"TODAY'S DATE : "M$(A(903))" "A(904)","A(905): PRINT : PRINT : PRINT : HTAB 16: PRINT "OPTIONS": PRINT : PRINT 
  168. 7010  PRINT " 1.  CURRENT STATUS": PRINT " 2.  ADD ACCOUNT": PRINT " 3.  UPDATE/CORRECT": PRINT " 4.  REVIEW / PROJECT": PRINT " 5.  SAVE DATA": PRINT " 6.  LIST ACCOUNTS NOT UPDATED"
  169. 7020  PRINT " 7.  DELETE ACCOUNT": PRINT " 8.  EXIT PROGRAM": PRINT : PRINT : POKE 34,15
  170. 7030  HTAB 7: PRINT "WHICH OPTION ";: GET Z$: PRINT Z$: PRINT :Z =  VAL(Z$): IF Z <1  OR Z >8  THEN  PRINT  CHR$(7);: GOTO 7030
  171. 7040  POKE 34,0: ON Z GOTO 1000,2000,3000,4000,5500,7050,8000,7060
  172. 7050  GOSUB 6000: GOTO 7000
  173. 7060  HOME : IF UD  THEN  PRINT  CHR$(7)"YOU HAVE CHANGED DATA.  DID YOU SAVE IT?": PRINT 
  174. 7070  PRINT "EXIT CALLED.  CONFIRM BY PRESSING 'E' ";
  175. 7080  GET Z$: PRINT Z$: IF Z$ < >"E"  THEN 7000
  176. 7090  HOME : END 
  177. 8000  HOME : VTAB 2: PRINT "YOU CAN DELETE:": PRINT : GOSUB 9140: GOSUB 9020
  178. 8010  PRINT : PRINT : INPUT "ENTER THE NAME ";NA$: IF NA$ = ""  THEN 7000
  179. 8020  FOR I = X TO Y  STEP 30: IF N$(I/30) < >NA$  THEN 8040
  180. 8030 N$(I/30) = "": FOR J = I TO I +29:A(J) = 0: NEXT :UD = 1: GOTO 7000
  181. 8040  NEXT : GOSUB 9130: GOSUB 9080: GOTO 8000
  182. 9000  PRINT : HTAB 7: PRINT "PRESS ANY KEY TO CONTINUE ";: GET Z$: PRINT Z$: RETURN 
  183. 9010 : HTAB 8: PRINT "CURRENT AS OF ";M$(A(903));" ";A(904);", ";A(905): RETURN 
  184. 9020  PRINT "      PLEASE ENTER YOUR CHOICE ";: POKE 34,8
  185. 9030  GET Z$: PRINT Z$:Z =  VAL(Z$): IF Z <1  OR Z >4  THEN  PRINT  CHR$(7): GOTO 9020
  186. 9040  IF Z = 1  THEN B$ = "ASSET":X = 450:Y = 720
  187. 9050  IF Z = 2  THEN B$ = "DEBT":X = 0:Y = 420
  188. 9060  IF Z = 3  THEN B$ = "MISC. EXPENDITURE":X = 750:Y = 870
  189. 9070  POKE 34,0:PT = 0:TQ = 1: IF Z = 4  THEN  POP : GOTO 7000
  190. 9080  HOME : VTAB 4: PRINT "THE FOLLOWING "B$"S ARE": PRINT "STORED:": PRINT 
  191. 9090  FOR I = X TO Y  STEP 30: IF A(I)  THEN  HTAB TQ:PT = PT +1: PRINT N$(I/30);:TQ = TQ +14: IF A(I +23) < >A(903)  THEN  PRINT "*";
  192. 9100  IF TQ >30  THEN TQ = 1: PRINT 
  193. 9110  IF   NOT (A(I))  THEN T = I
  194. 9120  NEXT :TQ = 1: PRINT : PRINT : PRINT "* FILE NOT UPDATED TO "M$(A(903)): RETURN 
  195. 9130 L =  INT( LEN(NA$)/2: PRINT : PRINT : INVERSE : HTAB 8 -L: PRINT  CHR$(7)"I CAN'T IDENTIFY "NA$".": NORMAL : GOSUB 9000: RETURN 
  196. 9140  PRINT "  1.  ASSET": PRINT "  2.  DEBT": PRINT "  3.  MISC. EXPENSE": PRINT "  4.  RETURN TO MENU": PRINT : RETURN